package com.javaoopthree.master;

import com.javaoopthree.Cart;
import com.javaoopthree.Menus;
import com.javaoopthree.Order;

import java.awt.*;
import java.util.Scanner;

public class CartMaster {
   Scanner scanner = new Scanner(System.in);


   public void  toCartMaster(Cart cart, Order[] orders){
        boolean isOk=true;
       do {
           System.out.println("请选择付款方式：1,全部支付，2,部分支付，3,返回上级");
           int i = scanner.nextInt();
           switch (i){
               case 1:
                   //全部支付
                   //计算总价格
                   Order order= new Order();
                   double menuCountPrice = order.getMenuCountPrice(cart.menus);
                   order.countPrice=menuCountPrice;
                   //获取订单编号
                   int orderId=(int)Math.floor(Math.random()*20);
                   order.oId=orderId;
                   order.status=1;
                   //将餐袋中的菜品放入订单中
                   order.menus=cart.menus;
                   System.out.println("订单已经生成，总价格为"+menuCountPrice);

                   //打印订单信息
                   Order order2 = new Order();
                   order2.showOrder(order);

                   System.out.println("请确认订单,并支付(y/n)");
                   String next = scanner.next();
                   if(next.equals("n")){
                       System.out.println("请前往订单中心，支付订单....");
                       return;
                   }
                   //todo 支付当时待定
                   order2.toPay(menuCountPrice,order);
                   //清空餐袋
                   cart=new Cart();

                   //存放到订单数组
                   Order order1 = new Order();
                   order1.addOrder(orders,order);
                   break;
               case 2:
                   //部分支付


                   //获取临时存放支付菜品的数组
                   Menus[] menus1= new Menus[10];
                   //获取需要支付的菜品信息
                   PayMaster(menus1,cart);


                   Order order6 = new Order();
                   int orderId1=(int)Math.floor(Math.random()*20);
                   order6.oId=orderId1;
                   order6.status=1;
                   //计算总价格
                   double menuCountPrice1 = order6.getMenuCountPrice(menus1);
                   order6.countPrice=menuCountPrice1;
                   order6.menus=menus1;
                   System.out.println("订单已经生成，总价格为"+menuCountPrice1);
                   //打印订单信息
                   Order order3 = new Order();
                   order3.showOrder(order6);

                   System.out.println("请确认订单,并支付(y/n)");
                   String next1 = scanner.next();
                   if(next1.equals("n")){
                       System.out.println("请前往订单中心，支付订单....");
                       return;
                   }
                   //todo 支付当时待定
                   Order order4 = new Order();
                   order4.toPay(menuCountPrice1,order6);

                   //存放到订单数组
                   Order order5 = new Order();
                   order5.addOrder(orders,order6);
                   break;

               default:
                   isOk=false;
                   break;

           }
       }while (isOk);
   }


   //部分支付的分支
   public void  PayMaster(Menus[] menus1,Cart cart){
       boolean idOk=true;
       do {
           System.out.println("请输入需要支付的菜品编号:");
           int mid = scanner.nextInt();

           Menus menus= new Menus();
           //根据mid查看菜品
           Menus menu= menus.getMenuById(mid, cart.menus);;
            if(menu !=null){
                //临时存起来
                menus.addNewsMenu(menus1,menu);
                //将购物 车中已经选择支付的菜，删除
                menus.delCartMenus(cart,menu);
            }else {
                System.out.println("菜品编号不存在...");
            }


           //是否继续选择
           System.out.println("是否继续选择菜品(y/n)：");
           String next = scanner.next();
           if(next.equals("n")){
               idOk=false;
           }
       }while (idOk);
   }
}
